package cn.org.xwb.bookmall.model.service;

import cn.org.xwb.bookmall.model.po.AllowMail;
import cn.org.xwb.common.page.dto.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;
import org.checkerframework.checker.units.qual.A;

import java.util.List;

/**
 * <p>
 * 允许登录管理端的邮箱 服务类
 * </p>
 *
 * @author xwb
 * @since 2023-11-23
 */
public interface IAllowMailService extends IService<AllowMail> {

    /**
     * 查询并缓存所有允许登录管理端的邮箱（包括禁用的）
     *
     * @return null-发生异常
     */
    List<AllowMail> findAndCacheAll();

    /**
     * 从缓存中查询所有允许登录管理端的邮箱（包括禁用的），
     * 如果缓存中不存在，则从数据库中查询，并缓存
     *
     * @return null-发生异常
     */
    List<AllowMail> findAllFromCache();

    /**
     * 分页获取允许登录的邮箱
     *
     * @param current 第几页
     * @param pageSize 数据个数
     * @param disabled 是否禁用的邮箱
     * @param match 模糊匹配条件
     * @return
     */
    PageResult<List<AllowMail>> findAllowMailsPage(Integer current, Integer pageSize, Boolean disabled, String match);

    /**
     * 判断邮箱是否允许登录管理端
     *
     * @param mail
     * @return
     */
    Boolean judgeAllow(String mail);

}
